《高性能網(wǎng)站建設指南》閱讀筆記_規則14- 使Ajax可緩存
發(fā)布時(shí)間:2013-11-22 瀏覽:339打印字號:大中小
簡(jiǎn)單的額說(shuō)就是使用之前的規則應用于A(yíng)jax請求。
很多時(shí)候我們會(huì )發(fā)現,當發(fā)起主動(dòng)Ajax請求時(shí),可能需要等待。改善這些主動(dòng)Ajax請求的最重要的方式就是使響應可緩存。此外前面提到的規則中,規則4壓縮組件,規則9減少DNS查找,規則10精簡(jiǎn)javascript,規則11避免重定向,規則13配置與禁用ETag。
因為規則3使用緩存最重要,所以這里只介紹這一點(diǎn)
書(shū)中給的一個(gè)例子是雅虎郵箱的,用戶(hù)如果查看沒(méi)有將正文下載到本地的郵件,就會(huì )產(chǎn)生一個(gè)主動(dòng)的ajax請求。但是如果關(guān)閉了這個(gè)網(wǎng)站之后又回來(lái),就會(huì )發(fā)送相同的請求。因為之前的ajax響應并沒(méi)有保存在瀏覽器緩存中。沒(méi)有被緩存的原因是有一個(gè)值為no-store的Cache-Control頭以及一個(gè)日期為過(guò)去的Expires頭,這些都告訴瀏覽器不要緩存。如果能使用一個(gè)長(cháng)久的Expires頭替換這些頭就會(huì )緩存。但是一般認為:這應該是一個(gè)動(dòng)態(tài)生成的響應只包含這個(gè)世界上的一個(gè)用戶(hù)的相關(guān)信息,緩存這些東西似乎是沒(méi)有意義的。作者認為,一個(gè)用戶(hù)可能在一天或一周中多次查看這個(gè)郵件,如果緩存了響應,就會(huì )看到緩慢的和快速的用戶(hù)體驗的差距。
當然,是這些ajax請求可緩存,除了改變HTTP頭之外還需要更多的工作,響應的個(gè)性化和動(dòng)態(tài)本質(zhì)必須反映到緩存中,可以采用的最好方式是使用查詢(xún)字符串參數。例如這個(gè)響應只對當前用戶(hù)有效可以將用戶(hù)名放到查詢(xún)字符串中做到這一點(diǎn),還有一點(diǎn)是要反映出確認的信息,如具體的哪一封郵件的緩存,可以使用郵件的唯一ID。


